//#ifdef H5
var jweixin = require('jweixin-module')
import indexConfig from "../config/index-config";
// #endif
export default {

	async paymentPage(data,parameter,routing) {
		var ua = window.navigator.userAgent.toLowerCase();
		let payParam;
		let urlPay; //请求地址支付地址,微信请求到后端pay.html;支付宝请求到前端的pay.vue
		let canUrl = '&canUrl='+ window.encodeURIComponent(document.URL);//当前页面url
		let reUrl =  '&reUrl=' + window.encodeURIComponent(document.URL);//当前页面url
		if (ua.match(/MicroMessenger/i) == 'micromessenger') {
			urlPay = indexConfig.payH5 + 'pay'
			// http://iotbox.huilianpay.com/client/pay
			data = JSON.parse(data.payInfo);
			payParam = '?timeStamp=' + encodeURIComponent(data.timeStamp)
				+ '&package=' + encodeURIComponent(data.package)
				+ '&paySign=' + encodeURIComponent(data.paySign)
				+ '&appId=' + encodeURIComponent(data.appId)
				+ '&signType=' + encodeURIComponent(data.signType)
				+ '&nonceStr=' + encodeURIComponent(data.nonceStr);
			// @ts-ignore
		} else if (ua.match(/AliApp/i) == 'aliapp') {
			urlPay = indexConfig.payH5 + '#/pages-pay/request-payment/pay'//前端pay页面地址
			// http://iotbox.huilianpay.com/client/#/pages-pay/request-payment/pay
			payParam = '?tradeNO=' + encodeURIComponent(data.prePayId);
		}
		//支付参数 + 支付失败 + 支付成功返回地址
		payParam = payParam + canUrl + reUrl;
		window.location.href = urlPay + payParam;
	},
	async juHePay(data, successCallBack, failCallBack) {
		var payInfo;
		// #ifdef MP-WEIXIN
		// console.log("weixin")
		 payInfo = JSON.parse(data.payInfo)
		
		uni.requestPayment({
			'timeStamp': payInfo.timeStamp,
			'nonceStr': payInfo.nonceStr,
			'package': payInfo.package,
			'signType': payInfo.signType,
			'paySign': payInfo.paySign,
			success: (res) => {
				// console.log("支付成功");
				/**{"errMsg":"requestPayment:ok"}*/
				successCallBack();
			},
			fail: (res) => {
				// console.log(JSON.stringify(res));
				/**{"errMsg": "requestPayment:fail cancel"}*/
				// var msg = '';
				// if (res.errMsg == 'requestPayment:fail cancel') {
				// 	msg = '取消支付'
				// } else {
				// 	msg = JSON.stringify(res);
				// 	uni.showToast({
				// 		title: msg,
				// 		icon: 'none'
				// 	});
				// }
				failCallBack();
			}
		})
		// #endif

		//#ifdef H5
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/MicroMessenger/i) == "micromessenger") {
			//console.log("进了吗？")
			payInfo = JSON.parse(data.payInfo)
			jweixin.config({
				debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
				appId: payInfo.appId, // 必填，公众号的唯一标识
				timestamp: payInfo.timeStamp, // 必填，生成签名的时间戳
				nonceStr: payInfo.nonceStr, // 必填，生成签名的随机串
				signature: payInfo.paySign, // 必填，签名，见附录1
				jsApiList: ['chooseWXPay'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
			});
			jweixin.ready(function () {
				jweixin.checkJsApi({
					jsApiList: ['chooseWXPay'], // 需要检测的JS接口列表，所有JS接口列表见附录2,
					success: function (res) {
						// console.log('res:checkjsapi Success 成功')
						jweixin.chooseWXPay({
							timestamp: payInfo
								.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
							nonceStr: payInfo.nonceStr, // 支付签名随机串，不长于 32 位
							package: payInfo
								.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=***）
							signType: payInfo.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
							paySign: payInfo.paySign, // 支付签名
							success: function (res) {
								// 支付成功后的回调函数
								// console.log('paysuccess:' + res)
								successCallBack();
								uni.showToast({
									title: "支付成功",
									icon: 'none'
								});
							},
							cancel: function (r) {
								uni.showToast({
									title: "取消支付",
									icon: 'none'
								});
							},
							// fail: function(res) {
							// 	uni.showToast({
							// 		title: "支付失败：" + res,
							// 		icon: 'none'
							// 	});
							// }
						});
					},
					fail: function (res) {
						// console.log('res:' + res);
						failCallBack();
					}
				});
			});
		}else if (ua.match(/AlipayClient/i) == "alipayclient") {
			var that = this;
			AlipayJSBridge.call("tradePay", {
				tradeNO: data.prePayId
			}, function (data) {
				if ("9000" == data.resultCode) {
					uni.showToast({
						title: "支付成功",
						icon: 'none'
					});
					successCallBack();
				} else {
					uni.showToast({
						title: "取消支付",
						icon: 'none'
					});
					failCallBack();
				}
			});
		}
		//#endif
		
		// #ifdef  MP-ALIPAY
		// console.log(data)
		uni.requestPayment({
			provider: 'alipay',
			orderInfo: data.prePayId, //微信、支付宝订单数据 【注意微信的订单信息，键值应该全部是小写，不能采用驼峰命名】
			success: function (res) {
				// console.log('success:' + JSON.stringify(res));

				if (res.resultCode == '9000'){
					successCallBack();
				} else {
					failCallBack();
				}
				/**
				 * 取消支付
				 * {
				 *	  "callbackUrl": "",
				 *	  "memo": "",
				 *	  "result": "",
				 *	  "resultCode": "6001",
				 *	  "errMsg": "requestPayment:ok"
				 *	}
				 */
				/**
				 * 支付成功
				 *	{
				 *	  "callbackUrl": "",
				 *	  "extendInfo": {
				 *	    "doNotExit": true,
				 *	    "isDisplayResult": true,
				 *	    "tradeNo": "2022082722001411201401707348"
				 *	  },
				 *	  "memo": "",
				 *	  "result": "app_name=\"alipay\"&trade_no=\"202208*****1707348\"&extern_token=\"RZ41dw7m******ilegwRZ41\"&biz_type=\"trade\"&display_pay_result=\"true\"&success=\"true\"",
				 *	  "resultCode": "9000",
				 *	  "errMsg": "requestPayment:ok"
				 *	}
				 */
			},
			fail: function (err) {
				// console.log('fail:' + JSON.stringify(err));
				failCallBack();
			}
		});
		// #endif

		// #ifdef  MP-TOUTIAO
		// _debug: 1,
		uni.requestPayment({
			provider: 'toutiao',
			service: 5,
			orderInfo: {
				order_id: data.order_id,
				order_token: data.order_token,
			},
			success: function (res) {
				console.log('success:' + JSON.stringify(res));
				// if (res.resultCode == '9000'){
				// 	successCallBack();
				// } else {
				// 	failCallBack();
				// }
			},
			fail: function (err) {
				console.log('fail:' + JSON.stringify(err));
				failCallBack();
			}
		});
		// #endif
		
	},

}
